package com.example.design.demo.single;

/**
 * @author lfj
 * @date 2023/11/10 17:05
 * @description 单例模式 -- 饿汉

 *  饿汉式(最常见)
 *   类加载到内存后,就实例化一个单例,JVM保证线程的安全
 *   1.将对象声明
 *   2.对象的构造方法设为私有属性,用户在使用的时候无法去声明创建对象
 *   3.写一个getInstance方法,去返回类中声明的唯一对象
 *   缺点:类加载的时候完成实例化
 *
 */
public class SingletonHunger {

    private static final SingletonHunger instance = new SingletonHunger();

    public SingletonHunger() {
    }

    public static SingletonHunger getInstance(){
        return instance;
    }

    public static void main(String[] args) {
        //两者输出的hash值一致
        SingletonHunger singletonHunger1 = SingletonHunger.getInstance();
        SingletonHunger singletonHunger2 = SingletonHunger.getInstance();
        System.out.println("饿汉式1="+singletonHunger1.hashCode());
        System.out.println("饿汉式2="+singletonHunger2.hashCode());
    }

}
